/**
 * Project  : Looker
 * Package  : net.freestu.looker.data
 * File     : DataWriter.java
 * Author   : solosky < solosky772@qq.com >
 * Date     : Jul 29, 2009
 * Modified : Jul 29, 2009
 * License  : Apache License 2.0 
 */
package net.freestu.looker.common;

import org.apache.commons.configuration.Configuration;


/**
 *  数据写入接口
 * @author  solosky
 * @version v1.0
 */
public interface NewsListener
{
	/**
	 * 初始化函数
	 * @param conf
	 * @throws NewsListenerException
	 */
	public void init(Configuration conf) throws ListenerException;
	/**
	 * 添加一个新闻
	 * @param news
	 * @throws ListenerException
	 */
	public void add(NewsEntity news) throws ListenerException;
	
	/**
	 * 删除一个新闻
	 * @param news
	 * @throws ListenerException
	 */
	public void delete(NewsMeta news) throws ListenerException;
	
	/**
	 * 更新一条新闻
	 * @param news
	 * @throws ListenerException
	 */
	public void update(NewsEntity news) throws ListenerException;
	
	/**
	 * 提交刚才的更改
	 * 这个方法在每次更改后会调用
	 * @throws ListenerException
	 */
	public void commit() throws ListenerException;
	
	/**
	 * 关闭这个监听器
	 * @throws ListenerException
	 */
	public void close() throws ListenerException;
}
